A software is an integral part of computer applications, due to which the development of a hug-free software is biggest challenge for a software developing community. The important part of the software development is the functional test case generation for software testing. The functional test case generation is an intellectually demanding and critical task that has a strong impact on the effectiveness and efficiency of the entire software testing process. These software are commonly used in a software system. For the large and complex software system, it is difficult even for the domain experts to envision all interactions between requirements. This sometimes makes it impossible to write functional test cases that cover all requirements and the interactions among them. Thus, there is a need of developing a method for automatically generating functional test case for software testing.
Various methods have been used for automatically generating the test cases, Random Test case Generation (RTG) and Model-Based Testing (MBT) are two techniques that are used for functional test case generation for the software system, RTG method generates random test cases and does not generate expected results. RTG requires a lot of additional effort to determine results and it is very likely that it generate a large number of redundant functional test cases.
On the other hand, MBT is implemented by several tools, but it is not widely adopted by the software developers as the requirements need to be specified in a formal language supported by the tool. Often, the language supported by these tools demands a strong mathematical background from the developer or require the developer to design the state space of the problem even if it is not part of the requirements. This activity is effort-intensive and adversely affects the overall cost of the approach. In fact, very little is known about the cost-effectiveness of MBT. Moreover, the syntactic structure of these languages is very different from the original requirements description, so there is no direct mapping from specifications to requirements. As a result, the coverage targeted by these tools, such as state and transition coverage, does not directly map to the requirements. MBT tools use a combination of random generation and constraint solving to generate test cases, however, neither of these techniques scale-up to industry-size applications.
The existing methods are effort intensive as they either require a specification in a formal language or they need expected results to be determined. Additionally, the existing methods are not applicable to industry size applications.